Computer applications may have a variety of audio functions. For example, some computer applications may use audible cues to inform application users of certain system or application events, such as a user error. Other computer applications may incorporate more elaborate audio functions. For example, some audio applications may allow for editing, processing, and playback of music files.
The audio functions are typically provided to a user through an audio hardware device, such as a sound card. Audio device drivers are used by computers to control the audio hardware device. The device driver can receive an audio stream from a computer application, process the audio stream, and provide the processed result to the audio hardware. The audio hardware may perform further processing, and provide the audio stream to an output device via a hardware interface. Typical output devices include speakers, headphones, and Sony/Philips Digital Interface (SPDIF) devices. However, providing the same audio data stream to different hardware interfaces at the audio hardware may result in poor performance of the output device, and a poor user experience.